package cn.stylefeng.guns.modular.hx.storage.mapper;

import cn.stylefeng.guns.modular.hx.storage.entity.HxStoragePutDetailed;
import cn.stylefeng.guns.modular.hx.storage.model.params.HxStoragePutDetailedParam;
import cn.stylefeng.guns.modular.hx.storage.model.params.HxStorageStockParam;
import cn.stylefeng.guns.modular.hx.storage.model.result.HxStoragePutDetailedResult;
import cn.stylefeng.guns.modular.hx.storage.model.result.HxStorageStockResult;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 入库单明细表 Mapper 接口
 * </p>
 *
 * @author zhucx
 * @since 2023-08-14
 */
public interface HxStoragePutDetailedMapper extends BaseMapper<HxStoragePutDetailed> {

    /**
     * 获取列表
     *
     * @author zhucx
     * @Date 2023-08-14
     */
    List<HxStoragePutDetailedResult> customList(@Param("paramCondition") HxStoragePutDetailedParam paramCondition);

    /**
     * 获取map列表
     *
     * @author zhucx
     * @Date 2023-08-14
     */
    List<Map<String, Object>> customMapList(@Param("paramCondition") HxStoragePutDetailedParam paramCondition);

    /**
     * 获取分页实体列表
     *
     * @author zhucx
     * @Date 2023-08-14
     */
    Page<HxStoragePutDetailedResult> customPageList(@Param("page") Page page, @Param("paramCondition") HxStoragePutDetailedParam paramCondition, @Param("condition") String condition);

    Page<HxStoragePutDetailedResult> findjiluPageBySpec(@Param("page") Page page, @Param("paramCondition") HxStoragePutDetailedParam paramCondition, @Param("condition") String condition);
    
    Page<HxStoragePutDetailedResult> findqualityPageBySpec(@Param("page") Page page, @Param("paramCondition") HxStoragePutDetailedParam paramCondition, @Param("condition") String condition);
    
    Page<HxStoragePutDetailedResult> findAppDailingquPageBySpec(@Param("page") Page page, @Param("paramCondition") HxStoragePutDetailedParam paramCondition, @Param("condition") String condition);

    /**
     * 获取分页map列表
     *
     * @author zhucx
     * @Date 2023-08-14
     */
    Page<Map<String, Object>> customPageMapList(@Param("page") Page page, @Param("paramCondition") HxStoragePutDetailedParam paramCondition);

	boolean saveBatchList(@Param("list")List<HxStoragePutDetailedParam> list);

	List<HxStoragePutDetailedResult> findListBySpec(@Param("paramCondition")HxStoragePutDetailedParam param);

	HxStoragePutDetailedResult details(@Param("paramCondition")HxStoragePutDetailedParam param);

	List<HxStoragePutDetailedResult> restfinddetailedSumlist(@Param("paramCondition")HxStoragePutDetailedParam hxStoragePutDetailedParam);

	HxStoragePutDetailedResult restfinddetailedSum(@Param("paramCondition")HxStoragePutDetailedParam hxStoragePutDetailedParam);

	List<HxStoragePutDetailedResult> restfinddetailedSumDetailedlist(@Param("paramCondition")HxStoragePutDetailedParam param);

	void allqualityupdateBySpec(@Param("paramCondition")HxStoragePutDetailedParam param);

	HxStoragePutDetailedResult findCheckBySpec(@Param("paramCondition")HxStoragePutDetailedParam check);

	void deleteBySpec(@Param("paramCondition")HxStoragePutDetailedParam param);

	List<HxStoragePutDetailedResult> appfindlistyilingqu(@Param("paramCondition")HxStoragePutDetailedParam hxStoragePutDetailedParam);

	List<HxStorageStockResult> storageStocklist(@Param("paramCondition")HxStorageStockParam hxStorageStockParam);

	HxStoragePutDetailedResult appPutfindBySpec(@Param("paramCondition")HxStoragePutDetailedParam param);

	HxStorageStockResult findBySpec1(@Param("paramCondition")HxStorageStockParam param);

	void updatePrint(@Param("paramCondition")HxStoragePutDetailedParam param);

	IPage getPrintwarehousingstat(@Param("paramCondition")Page pageContext, @Param("paramCondition")String condition, @Param("paramCondition")HxStoragePutDetailedParam hxStoragePutDetailedParam);

	List<HxStoragePutDetailedResult> findShangjiaData(@Param("paramCondition")HxStoragePutDetailedResult hxStoragePutDetailedResult);

	List<HxStoragePutDetailedResult> findStoragePutList(@Param("paramCondition")HxStoragePutDetailedParam param);

    List<HxStoragePutDetailedResult> findlistAllBySpec(@Param("paramCondition")HxStoragePutDetailedParam hxStoragePutDetailedParam,@Param("condition") String condition,@Param("operateId") Long operateId);

	HxStoragePutDetailedResult count(@Param("paramCondition")HxStoragePutDetailedParam hxStoragePutDetailedParam,@Param("condition") String condition,@Param("operateId") Long operateId);

	HxStoragePutDetailedResult count1(@Param("paramCondition")HxStoragePutDetailedParam hxStoragePutDetailedParam,@Param("condition") String condition,@Param("operateId") Long operateId);

	List<HxStoragePutDetailedResult> listAll1(@Param("paramCondition")HxStoragePutDetailedParam hxStoragePutDetailedParam,@Param("condition") String condition,@Param("operateId") Long operateId);

	List<HxStoragePutDetailedResult> findAppDailingquBySpec(@Param("paramCondition")HxStoragePutDetailedParam hxStoragePutDetailedParam,
			@Param("condition")String condition);

	List<HxStoragePutDetailedResult> findShelvesData(@Param("paramCondition")HxStoragePutDetailedParam hxStoragePutDetailedParam);

	Integer findyituijianDetailed(@Param("paramCondition")HxStoragePutDetailedParam hxStoragePutDetailedParam);

}
